package com.mogist.hqc.util;

import com.baidu.mapapi.model.CoordUtil;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.model.inner.Point;

import java.math.BigDecimal;

import talex.zsw.basecore.util.MathTool;
import talex.zsw.basecore.util.RegTool;

/**
 * 作用：地图距离计算
 * 作者：赵小白 email:vvtale@gmail.com  
 * 修改人：
 * 修改时间：
 * 修改备注：
 */
public class DistanceUtil
{
	public DistanceUtil()
	{
	}

	public static String getDistance(String lat1, String lon1, String lat2, String lon2)
	{
		if(RegTool.isEmpty(lat1))
		{
			lat1 = "0";
		}
		if(RegTool.isEmpty(lon1))
		{
			lon1 = "0";
		}
		if(RegTool.isEmpty(lat2))
		{
			lat2 = "0";
		}
		if(RegTool.isEmpty(lon2))
		{
			lon2 = "0";
		}
		LatLng latLng1
			= new LatLng(new BigDecimal(lat1).doubleValue(), new BigDecimal(lon1).doubleValue());
		LatLng latLng2
			= new LatLng(new BigDecimal(lat2).doubleValue(), new BigDecimal(lon2).doubleValue());
		double mi = getDistance(latLng1, latLng2);
		if(mi < 1000)
		{
			return MathTool.roundStr(mi, 1)+"m";
		}
		else
		{
			return MathTool.roundStr(MathTool.div(mi, 1000d), 1)+"km";
		}
	}


	public static double getDistance(LatLng var0, LatLng var1)
	{
		if(var0 != null && var1 != null)
		{
			Point var2 = CoordUtil.ll2point(var0);
			Point var3 = CoordUtil.ll2point(var1);
			return var2 != null && var3 != null ? CoordUtil.getDistance(var2, var3) : -1.0D;
		}
		else
		{
			return 0D;
		}
	}
}
